In many real-world applications, input data is naturally expressed in the form of tensors or multi-dimensional arrays, such as, but not limited to, virtual metrology in semiconductor manufacturing, face recognition and gait recognition in computer vision, etc. For example, in the context of semiconductor manufacturing, each recipe process usually comprises multiple steps. During each step, process variables such as temperature, pressure and gas flow per unit time are precisely measured and monitored. Therefore, to predict wafer quality, the input data are naturally expressed as tensors. For example, for a single-chamber recipe, the tensors have three modes, namely steps, time within a step, and observed process variables or features; for multiple-chamber recipes, the tensors have four modes, with the additional mode being the chamber recipes accomplished on the same or different chambers in one tool; if summary statistics for each process variable in a single step are used instead of instantaneous measurements, the modes of the tensors are reduced by one. Another example is in computer vision, where images can be modeled as second-order tensors, and image sequences can be modeled as third-order tensors.
Conventionally, work on dealing with tensor data converts tensors into one-dimensional vectors and applies a rich methodology for vector inputs to build a model, either for classification or for regression. However, by converting tensors into vectors, valuable information embedded in the structure of the tensors is lost, such as, for example, feature correspondence in different steps, in the example of semiconductor manufacturing, or neighborhood information of a pixel, in the example of computer vision. Hence, existing approaches to handling tensor data result in inaccurate predictive modeling and are therefore undesirable.